题解 P4057@洛谷 【[Code+#1]晨跑】

十年OI一场空,不开long long……

一开始没开ll被卡了好久,直到今天我看向了数据范围……

欧式gcd:

ll gcd(ll a, ll b)
{
  return b==0?a:gcd(b,a%b);
}

lcm:

ll lcm(ll a, ll b)
{
  return a/gcd(a,b)*b;
}

三个数的lcm就先求两个的lcm,再求下一个,即:

lcm(lcm(a,b),c);

完整代码:

#include <iostream>
using namespace std;
#define ll long long

ll gcd(ll a, ll b)
{
    return b==0?a:gcd(b,a%b);
}

ll lcm(ll a, ll b)
{
    return a/gcd(a,b)*b;
}

int main()
{
    ll a, b, c;
    cin>>a>>b>>c;
    cout<<lcm(lcm(a,b),c)<<endl;
	return 0;
}